package com.wicket.okrapp.biz.service.dto.common;
import com.wicket.okrapp.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Date;

import lombok.Data;
import java.util.Objects;
    
    
    /**
     * @desc SpecExecCycleStageAnaDto
     * @使用场景
     */
    @Data
    public class SpecExecCycleStageAnaDto extends BaseDto  implements Serializable {
      
    /**
     * 执行周期阶段ID 
     */
    @ApiModelProperty("执行周期阶段ID")
    private String	 executeCycleStageId;

    /**
     * 周期ID 
     */
    @ApiModelProperty("周期ID")
    private String	 cycleId;

    /**
     * 周期类型配置标识 
     */
    @ApiModelProperty("周期类型配置标识")
    private String	 cycleTypeConfCode;

    /**
     * 周期类型标识 
     */
    @ApiModelProperty("周期类型标识")
    private String	 cycleTypeCode;

    /**
     * 排序 
     */
    @ApiModelProperty("排序")
    private Long	 orderNumber;

    /**
     * 上一执行周期开始时间 
     */
    @ApiModelProperty("上一执行周期开始时间")
    private Date	 lastExeCycleStartTime;

    /**
     * 上一执行周期结束时间 
     */
    @ApiModelProperty("上一执行周期结束时间")
    private Date	 lastExeCycleEndTime;

    /**
     * 下一执行周期开始时间 
     */
    @ApiModelProperty("下一执行周期开始时间")
    private Date	 nextExeCycleStartTime;

    /**
     * 下一执行周期结束时间 
     */
    @ApiModelProperty("下一执行周期结束时间")
    private Date	 nextExeCycleEndTime;

    /**
     * 上一子周期被评对象目标周期ID 
     */
    @ApiModelProperty("上一子周期被评对象目标周期ID")
    private String	 lastSubEvaObjTargetCycleId;

    /**
     * 上一子周期周期ID 
     */
    @ApiModelProperty("上一子周期周期ID")
    private String	 lastSubCycleId;

    /**
     * 上一子周期周期开始时间 
     */
    @ApiModelProperty("上一子周期周期开始时间")
    private Date	 lastSubCycleStartTime;

    /**
     * 上一子周期周期结束时间 
     */
    @ApiModelProperty("上一子周期周期结束时间")
    private Date	 lastSubCycleEndTime;

    /**
     * 下一子周期被评对象目标周期ID 
     */
    @ApiModelProperty("下一子周期被评对象目标周期ID")
    private String	 nextSubEvaObjTargetCycleId;

    /**
     * 下一子周期周期ID 
     */
    @ApiModelProperty("下一子周期周期ID")
    private String	 nextSubCycleId;

    /**
     * 下一子周期周期开始时间 
     */
    @ApiModelProperty("下一子周期周期开始时间")
    private Date	 nextSubCycleStartTime;

    /**
     * 下一子周期周期结束时间 
     */
    @ApiModelProperty("下一子周期周期结束时间")
    private Date	 nextSubCycleEndTime;
@Override
  public boolean equals(Object o) {
      if (this == o) return true;
      if (o == null || getClass() != o.getClass()) return false;
      if (!super.equals(o)) return false;
      SpecExecCycleStageAnaDto that = (SpecExecCycleStageAnaDto) o;
      return  executeCycleStageId == that.executeCycleStageId&&cycleId == that.cycleId&&cycleTypeConfCode == that.cycleTypeConfCode&&cycleTypeCode == that.cycleTypeCode&&orderNumber == that.orderNumber&&lastExeCycleStartTime == that.lastExeCycleStartTime&&lastExeCycleEndTime == that.lastExeCycleEndTime&&nextExeCycleStartTime == that.nextExeCycleStartTime&&nextExeCycleEndTime == that.nextExeCycleEndTime&&lastSubEvaObjTargetCycleId == that.lastSubEvaObjTargetCycleId&&lastSubCycleId == that.lastSubCycleId&&lastSubCycleStartTime == that.lastSubCycleStartTime&&lastSubCycleEndTime == that.lastSubCycleEndTime&&nextSubEvaObjTargetCycleId == that.nextSubEvaObjTargetCycleId&&nextSubCycleId == that.nextSubCycleId&&nextSubCycleStartTime == that.nextSubCycleStartTime&&nextSubCycleEndTime == that.nextSubCycleEndTime;
    }
@Override
  public int hashCode() {
      return Objects.hash(super.hashCode(), executeCycleStageId,cycleId,cycleTypeConfCode,cycleTypeCode,orderNumber,lastExeCycleStartTime,lastExeCycleEndTime,nextExeCycleStartTime,nextExeCycleEndTime,lastSubEvaObjTargetCycleId,lastSubCycleId,lastSubCycleStartTime,lastSubCycleEndTime,nextSubEvaObjTargetCycleId,nextSubCycleId,nextSubCycleStartTime,nextSubCycleEndTime);
    }
    
      

    }
   